home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / SystemEventQueueUtilities.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.3 KB  |  180 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.EventQueue;
  6. import java.util.Hashtable;
  7.  
  8. class SystemEventQueueUtilities {
  9.    private static Hashtable rootTable = new Hashtable(4);
  10.    private static final Object classLock = new Object();
  11.  
  12.    static {
  13.       if (SwingUtilities.is1dot2) {
  14.          System.err.println("warning: running 1.1 version of SystemEventQueueUtilities");
  15.       }
  16.  
  17.    }
  18.  
  19.    // $FF: synthetic method
  20.    static Object access$0() {
  21.       return classLock;
  22.    }
  23.  
  24.    // $FF: synthetic method
  25.    static void access$1(RunnableEvent var0) {
  26.       processRunnableEvent(var0);
  27.    }
  28.  
  29.    // $FF: synthetic method
  30.    static ThreadGroup access$2() {
  31.       return getThreadGroupSafely();
  32.    }
  33.  
  34.    static void addRunnableCanvas(JRootPane var0) {
  35.       Object var1 = classLock;
  36.       synchronized(var1){}
  37.  
  38.       try {
  39.          if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get(var0) == null) {
  40.             JLayeredPane var3 = var0.getLayeredPane();
  41.             if (var3 != null) {
  42.                RunnableCanvas var4 = new RunnableCanvas(var0);
  43.                ((Container)var3).add(var4);
  44.             }
  45.  
  46.             return;
  47.          }
  48.       } catch (Throwable var6) {
  49.          throw var6;
  50.       }
  51.  
  52.    }
  53.  
  54.    private static ThreadGroup getThreadGroupSafely() {
  55.       return (new Thread()).getThreadGroup();
  56.    }
  57.  
  58.    static Exception postRunnable(Runnable var0, Object var1) {
  59.       EventQueue var2 = javax.swing.SystemEventQueueUtilities.SystemEventQueue.get();
  60.       RunnableEvent var3 = new RunnableEvent(var0, var1);
  61.       if (var2 != null) {
  62.          var2.postEvent(var3);
  63.       } else {
  64.          postRunnableCanvasEvent(var3);
  65.       }
  66.  
  67.       return var3.exception;
  68.    }
  69.  
  70.    private static void postRunnableCanvasEvent(RunnableEvent var0) {
  71.       Object var1 = classLock;
  72.       synchronized(var1) {
  73.          RunnableCanvas var3 = javax.swing.SystemEventQueueUtilities.RunnableCanvas.lookup(var0);
  74.          if (var3 != null) {
  75.             var3.addRunnableEvent(var0);
  76.             ((Component)var3).repaint();
  77.             return;
  78.          }
  79.  
  80.          if (var0.doRun instanceof ComponentWorkRequest) {
  81.             ComponentWorkRequest var4 = (ComponentWorkRequest)var0.doRun;
  82.             synchronized(var4){}
  83.  
  84.             try {
  85.                var4.isPending = false;
  86.             } catch (Throwable var8) {
  87.                throw var8;
  88.             }
  89.          }
  90.  
  91.          if (var0.doRun instanceof Timer.DoPostEvent) {
  92.             ((Timer.DoPostEvent)var0.doRun).getTimer().eventQueued = false;
  93.          }
  94.  
  95.          if (var0.lock != null) {
  96.             var0.lock.notify();
  97.          }
  98.       }
  99.  
  100.    }
  101.  
  102.    private static void processRunnableEvent(RunnableEvent var0) {
  103.       Object var1 = var0.lock;
  104.       if (var1 == null) {
  105.          var0.doRun.run();
  106.       } else {
  107.          synchronized(var1){}
  108.  
  109.          try {
  110.             try {
  111.                var0.doRun.run();
  112.             } catch (Exception var13) {
  113.                var0.exception = var13;
  114.             } finally {
  115.                if (var0.lock != null) {
  116.                   var0.lock.notify();
  117.                }
  118.  
  119.             }
  120.          } catch (Throwable var15) {
  121.             throw var15;
  122.          }
  123.       }
  124.  
  125.    }
  126.  
  127.    static void queueComponentWorkRequest(Component var0) {
  128.       ComponentWorkRequest var1 = (ComponentWorkRequest)rootTable.get(var0);
  129.       boolean var2 = var1 == null;
  130.       if (var2) {
  131.          var1 = new ComponentWorkRequest(var0);
  132.       }
  133.  
  134.       synchronized(var1){}
  135.  
  136.       try {
  137.          if (var2) {
  138.             rootTable.put(var0, var1);
  139.          }
  140.  
  141.          if (!var1.isPending) {
  142.             SwingUtilities.invokeLater(var1);
  143.             var1.isPending = true;
  144.          }
  145.       } catch (Throwable var5) {
  146.          throw var5;
  147.       }
  148.  
  149.    }
  150.  
  151.    static void removeRunnableCanvas(JRootPane var0) {
  152.       Object var1 = classLock;
  153.       synchronized(var1){}
  154.  
  155.       try {
  156.          rootTable.remove(SwingUtilities.getRoot(var0));
  157.          javax.swing.SystemEventQueueUtilities.RunnableCanvas.remove(var0);
  158.       } catch (Throwable var3) {
  159.          throw var3;
  160.       }
  161.  
  162.    }
  163.  
  164.    static void restartTimerQueueThread() {
  165.       Object var0 = classLock;
  166.       synchronized(var0){}
  167.  
  168.       try {
  169.          if (javax.swing.SystemEventQueueUtilities.SystemEventQueue.get() == null) {
  170.             TimerQueueRestart var2 = new TimerQueueRestart();
  171.             RunnableEvent var3 = new RunnableEvent(var2, (Object)null);
  172.             javax.swing.SystemEventQueueUtilities.RunnableCanvas.postRunnableEventToAll(var3);
  173.          }
  174.       } catch (Throwable var5) {
  175.          throw var5;
  176.       }
  177.  
  178.    }
  179. }
  180.